
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><!-- #BeginTemplate "/Templates/maintemplate.dwt" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<!-- #BeginEditable "doctitle" -->
<title>DJep - Version history</title>
<!-- #EndEditable --> 
<link rel="stylesheet" type="text/css" href="../main.css" title="style1">
</head>

<body>



<!-- NAVIGATION ---------------------------------------------------- -->
<div id="navcontainer"> 
  <ul>
    <li><a href="../../javadoc/index.html" target="_blank">JavaDoc <img src="../img/new-window-icon.gif" width="15" height="11"></a></li>
  </ul>
  <h1>JEP</h1>
  <ul>
    <li><a href="../index.html">Basic Usage</a></li>
    <li><a href="../variables.html">Variables</a></li>
    <li><a href="../types.html">Data types</a></li>
    <li><a href="../operators.html">Operators</a></li>
    <li><a href="../functions.html">Functions</a></li>
    <li><a href="../advanced.html">Advanced Features</a></li>
    <li><a href="../grammar.html">Grammar</a></li>
    <li><a href="../faq.html">FAQ</a></li>
    <li><a href="../version.html">Version History</a></li>
  </ul>
  <h1>Extensions</h1>
  <ul>
    <li><a href="index.html">Overview</a></li>
    <li><a href="xjep.html">XJep</a></li>
    <li><a href="djep.html">Differentiation</a></li>
    <li><a href="vectorjep.html">Vectors and Matrices</a></li>
    <li><a href="groupjep.html">Groups</a></li>
    <li><a href="version.html">Version History</a></li>
  </ul>
</div>



<div id="centercontent">
<!-- CENTER CONTENT -------------------------------------------------- -->
<!-- #BeginEditable "Text" --> 
  <h1><a name="top"></a>Extensions Version History</h1>

  <h2 class="version">Version 1.1.1 <span class="date">(released 2007/04/25)</span></h2>
  <ul>
  <li>Fixed bug [ 1567116 ] VectorJep division</li>
  </ul>
  <h2 class="version">Version 1.1.0</h2>
  <h3>New Features</h3>
  <ul>
    <li><b>Simplification:</b> A new package org.lsmp.djep.sjep has a more advanced 
      simplification algorithm. This will collect terms with the same powers so 
      <code>3x+x^2+4x+x^2</code> is transformed to <code>7x+2x^2</code>. Full 
      expansion of polynomials is also available so <code>(1+x)^3</code> it transformed 
      to <code>1+3x+3x^2+x^3</code>. </li>
    <li><b>Fast Evaluation:</b> Two new classes in the org.lsmp.djep.rpe package 
      peform faster evaluation over the reals. The speed up can be between four 
      and ten times faster. One of the classes RpEval works with singled valued 
      functions and the other MRpEval works with vectors and matrices optimised 
      for 2,3, and four dimensions. </li>
    <li><b>New Functions:</b> Several new functions have been added, including 
      standard vector and matrix operations and wrappers around the JAMA matrix 
      algorithms which can solve matrix equations. </li>
  </ul>
  <h3>Minor Improvments</h3>
  <ul>
    <li>Evaluator now swithchable to allow null variable values.</li>
    <li>SymbolTable can now tell java.util.observers when new variables are created.</li>
    <li>Reworked Console aplications to make them easily extendable.</li>
    <li>Rewrite Visitor can allow arbitary term rewriting rules.</li>
    <li>XJep has methods to find the variables in an equation.</li>
  </ul>
  <h2 class="version">Version 2.3.0 release (renamed to DJEP 1.0.0)</h2>
  <p>No major changes were made for the release.</p>
  <h2 class="version">Version 2.3.0 beta 1 - 12 April 2004 (formerly known as 2.3.2 beta)</h2>
  This version now has a stable API an should be used in preference to earlier 
  versions.<br>
  <br>
  Main changes since 2.3.0a:<br>
  <ul>
    <li>Added a groupJep package: this allows calculation over arbitrary groups 
      like the rational numbers.</li>
    <li>Changed the org.nfunk.jep.values.Complex to extend number, modified all 
      postfix math commands to suit.</li>
    <li>Changed the Scaler, MVector and Matrix types to extend number.</li>
    <li>Added features for a re-enterant parser.</li>
    <li>Major re-nameing of packages and classes. Removed unnecessary classes.</li>
    <li>Documentation updated.</li>
    <li>The ^ operator is now overloaded to be the cross product for 3D vectors 
      as well as power.</li>
    <li>Parser is now switchable for whether . can appear in an identifier x.y 
      can either be a single variable (default for JEP,XJep and DJep) or as the 
      dot product x . y (default for VectorJep and MatrixJep).</li>
    <li>New functions if, str, complex, polar.</li>
    <li>Several other minor changes.</li>
  </ul>
  <h3>TODO features yet to come</h3>
  <br>
  A few new functions to be added, min, max, sgn, differentiation for if.<br>
  Vector and matrix functions: det, inverse, transpose ....<br>
  Faster evaluation, possibly based of a reverse polish type of evaluation scheme, 
  eliminating as much object creation as possible.<br>
  Various conversion routines to other formats MathML etc.<br>
  <h2 class="version">Version 2.3.0 alpha - 28 Feb 2004 (formerly known as 2.3.1 alpha)</h2>
  <p> This is the third release of the package, released 28/Feb/04. I'm really 
    just rushing this out as some people have been asking for documentation which 
    is included here. Still more documentation to come. Also the code is still 
    in a fairly mutable state and I still expect to move some things around so 
    don't expect the the API to be stable. Hopefully it will just be the inner 
    workings which change the main interface for users is nearly fixed. The most 
    important changes in this package are </p>
  <ul>
    <li>Renames org.lsmp.djep.matrixJep.MatrixDJep to org.lsmp.djep.matrixJep.MatrixDJep. 
    </li>
    <li>Moved the console applications to their own package </li>
    <li>Added some more examples </li>
    <li>Added some documentation </li>
    <li>Added some JUnit test </li>
    <li>Rationalised some of inner workings and cleaned up some unnecessary stuff, 
      notably in relation to variables and their evaluation.</li>
  </ul>
  <h2 class="version">Version 2.3.0a - Jan 04</h2>
  <br>
  First release as an official part of JEP.<br>
  <br>
  Added support for vectors and matrices.<br>
  Major reworking of differentiation, functionality now split into two packages 
  org.lsmp.djep.xjep - printing, tree manipulation etc, and org.lsmp.djep.djep 
  - differentiation.<br>
  Changed the org.nfunk.jep.SymbolTable class so the elements are now of type 
  org.nfunk.jep.Variable rather than just its value. ASTVarNodes now refer to 
  the variable object.<br>
  Several changes in exposed API for JEP.<br>
  Introduced an org.nfunk.jep.Operator and org.nfunk.jep.OperatorSet types which 
  represent the basic +,-,*,/,etc operators. Eliminates the excess creation of 
  one object for each instance of an operator.<br>
  <h3>Known bugs in version 2.3.0a</h3>
  Several bugs are known in version 2.3.0a. 
  <ul>
    <li>Differential of "diff(a^x,x)" should be "a^x * ln(a)" but it's "a^x * 
      ln(x)". </li>
    <li>Evaluation of "(x*x)*(x*x)" causes a ParseError in VectorJep and MatrixJep. 
      Quick fix: edit org.lsmp.djep.vectorJep.function.MMultiply.java<br>
      On line 72: in the run method, comment out the line 
      <pre>if(stack.size()!=2) throw new ParseException("Multiply: should have two children its got "+stack.size());</pre>
    </li>
    <li>Matrix multiplication (i.e. matrix * matrix) does not work. Fix: upgrade 
      to later version. </li>
    <li>vector * vector multiplication does not work. </li>
    <li>cannot combine results of matrix operations with functions ie. "sqrt([1,2].[1,2])" 
      fails. Fix: upgrade. </li>
    <li>Dot and cross product cannot be differentiated. </li>
    <li>uminus is broken for MatrixJep. </li>
    <li>Problems repeated evaluation of sequences of equations.<br>
      Quick fix: always uses before reevaluation. j.getSymbolTable().clearValues(); 
    </li>
    <li>Problems with using different types of JEP in the same application. They 
      share a static Operator class which can have the wrong pfmc's for the type 
      of JEP.</li>
  </ul>
  <h2 class="version">First release</h2>
  The first release of the package was about September last year. It just included 
  differentiation facilities. The package has had a major rework since then.<br>
  <!-- #BeginLibraryItem "/Library/top bar.lbi" -->
<div class="topbar"><a href="#top"><img src="../img/top.gif" width="38" height="15" name="top"></a></div>
<!-- #EndLibraryItem --><!-- #EndEditable -->




<!-- FOOTER ---------------------------------------------------------- -->
<div id="footer">
<a href="http://sourceforge.net/tracker/?func=add&group_id=24711&atid=382402">Report bugs / documentation errors</a><br/>
<br/>
&copy; 2006 <a href="http://www.singularsys.com" target="_blank">Singular Systems</a>
</div>
</div> <!-- centercontent -->

</body>
<!-- #EndTemplate --></html>
